int yuubandadapickup( wchar_t* dir1, char *yuuban, int nosmax, int *nos, array< char2 >^ *data )
    {
        int cnt;
        int n = 0, n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0;
        int i, j, ip1, ip3;
        bool crflg, lfflg;
        char* cr = "\r";
        char* lf = "\n";
        char* ch1 = ",";
        char ch2[ 2 ]; ch2[ 0 ] = '"'; ch2[ 1 ] = NULL;
        char s2[ systemdatalen ];
        char s3[ 3 ];
        char s4[ 3 ];
        char s5[ systemdatalen ];
        char s6[ systemdatalen ];
        if ( ! File::Exists( chgmojidata1( dir1 ) ) ) return -1;
        FileStream^ sr1 = File::OpenRead( chgmojidata1( dir1 ) );
        unsigned char s;
        array< unsigned char >^ s1;
        strcpy_s( s5, systemdatalen, yuuban );
        Trace::WriteLineIf( debugflg, " yuubandadapickup ( 1 ) yuuban = " + chgmojidata3( s5 ) );
        n = 0;
        cnt = 0;
        try
        {
            n1 = 0;
            n4 = 0;
            crflg = false;
            lfflg = false;
            while( s = sr1->ReadByte( ) )
            {
                if ( s == 255 ) break;
                s1->Resize( s1, n1 + 1 );
                s1[ n1 ] = s;
                n1++;
                s3[ n4 ] = s;
                n4++;
                if ( n4 >= 1 )
                {
                    s3[ n4 ] = NULL;
                    if ( strcmp( s3, cr ) == 0 ) { crflg = true; n2 = n1; }
                    if ( strcmp( s3, lf ) == 0 && crflg && n1 == n2 + 1 ) lfflg = true;
                    if ( lfflg )
                    {
                        ip1 = 0;
                        ip3 = 0;
                        n3 = 0;
                        n5 = 0;
                        s6[ n3 ] = NULL;
                        //Trace::WriteLineIf( debugflg, " yuubandadapickup ( 2 ) cnt = " + cnt );
                        for ( i = 0; i < n1; i++ )
                        {
                            s4[ n5 ] = s1[ i ];
                            n5++;
                            if ( n5 >= 1 )
                            {
                                s4[ n5 ] = NULL;
                                if ( strcmp( s4, ch1 ) == 0 ) ip1++;
                                if ( ip1 >= 2 )
                                {
                                    if ( ip3 >= 1 )
                                    {
                                        if ( strcmp( s4, ch2 ) == 0 ) ip3++;
                                        if ( ip3 >= 2 || ip1 >= 3 )
                                        {
                                            s6[ n3 ] = NULL;
                                            //Trace::WriteLineIf( debugflg, " yuubandadapickup ( 5 ) n = " + n + " s5 = " + chgmojidata3( s5 ) + " s6 = " + chgmojidata3( s6 ) );
                                            if ( strcmp( s5, s6 ) == 0 )
                                            {
                                                for ( j = 0; j < n1; j++ ) ( *data )[ n, j ] = s1[ j ];
                                                n++;
                                            }
                                            n1 = 0;
                                            n4 = 0;
                                            crflg = false;
                                            lfflg = false;
                                            cnt++;
                                            break;
                                        }
                                        s2[ n3 ] = s4[ 0 ];
                                        s6[ n3 ] = s4[ 0 ];
                                        n3++;
                                    }
                                    if ( strcmp( s4, ch2 ) == 0 ) ip3++;
                                }
                                n5 = 0;
                            }
                            if ( n >= nosmax )
                            {
                                if ( sr1 ) delete ( IDisposable^ ) sr1;
                                *nos = n;
                                Trace::WriteLineIf( debugflg, " yuubandadapickup ( 3 ) file = " + chgmojidata1( dir1 ) + " record count n = " + n );
                                return 0;
                            }
                        }
                    }
                    n4 = 0;
                }
            }
        }
        finally
        {
            if ( sr1 ) delete ( IDisposable^ ) sr1;
        }
        *nos = n;
        Trace::WriteLineIf( debugflg, " yuubandadapickup ( 4 ) file = " + chgmojidata1( dir1 ) + " record count n = " + n );
        return 0;
    }